#pragma once

#include "mod.h"

namespace sfc::tuple {

template <class... _>
struct Tuple;

template <class T0>
struct Tuple<T0> {
  T0 _0;
};

template <class T0, class T1>
struct Tuple<T0, T1> {
  T0 _0;
  T1 _1;
};

template <class T0, class T1, class T3>
struct Tuple<T0, T1, T3> {
  T0 _0;
  T1 _1;
  T3 _3;
};

template <class T0, class T1, class T3, class T4>
struct Tuple<T0, T1, T3, T4> {
  T0 _0;
  T1 _1;
  T3 _3;
  T4 _4;
};

}  // namespace sfc::tuple
